Recently, as symbolized in animation used for movies and TV games, computer graphics (CG) have been remarkably developed. The remarkable development greatly depends on the progress of processors dedicated to graphics processing (GPU: Graphic Processor Unit). The GPU is a specialized chip for a computation process that is necessary for the graphic display. In general, the GPU has better performance of the image process than a CPU. If the computation processes performed by the CPU are taken over by the GPU, the image process can be performed rapidly, and the load on the CPU can be reduced. In addition, the bandwidth of a main memory that is allocated to processes other than the image process can be increased. Moreover, the frequency of data transfer between the CPU and a video memory (VRAM) is reduced. As a result, a high-speed and highly-functional graphic process can be implemented.
The computation processes performed by the GPU are mainly divided into three processes, that is, a two-dimensional CG process, a three-dimensional CG process, and a moving picture process. Particularly, the recent GPU has been rapidly developed in terms of the three-dimensional CG process. As the three-dimensional CG process of the GPU, there is a geometry process and a rendering process. In the geometry process, an arrangement which is formed by projecting each model envisioned in a three-dimensional virtual space on a two-dimensional screen is determined by a geometrical computation, particularly, a coordinate transformation. In the rendering process, data representing an image that is to be actually displayed on the two-dimensional screen is generated based on the arrangement of each model on the two-dimensional screen determined by the geometry process. The rendering process particularly includes imaging processes such as hidden surface removal, shading, and texture mapping.
In the geometry process, a dedicated pipeline referred to as a vertex shader is used. In the rendering process, a dedicated pipeline referred to as a pixel shader is used. In the recent GPU, both of the vertex shader and the pixel shader are programmable. Particularly, in the pixel shader, each image process is programmable in units of pixel. In the more advanced GPU, the number of instructions available to each shader is greatly increased, so that each shader can perform a two-dimensional CG process and a moving picture process as well as a higher functionality of the three-dimensional CG process. Since the computation performance of the GPU is much higher than the computation performance of the CPU in terms of the image process, the increase in the utility range of the shader is advantageous in implementing a higher speed/higher functionality for the entirety of the image process.
Patent Document 1: Japanese Unexamined Patent Application, First Publication No. H9-185361